type TrimLeft<S extends string> = S extends `${infer Left}${infer Rest}`?Left extends " "| "\n" | "\t"?TrimLeft<Rest>:S:"";

// var str = "  hahahah  "
// var txt = str.replace(/^[ ]+/g,"");

// type t=TrimLeft<'   \n\t foo bar '>
